今天我們來正式進入CI/CD的環節。Jenkins也許不是最古老,但是卻是最有名、最多人用的integration控管軟體。Jenkins是開源的自動化Server,Jenkins內有上百個額外的plugin供使用者下載使用,這使得Jenkins至今仍歷久不衰,提供了強大的building、deploying project的功能。Jenkins口號是 Build great things at any scale
,Logo是一個管家負責幫你看館你的project。
為什麼持續整合軟體重要?
如上圖,完成一個專案,根據DevOps分成8個步驟,Plan、code、Build、Test
與deploy、operation、monitor
,前半部分大多在本地端的電腦執行方便修改,後半部分放在伺服器上供使用者使用。而持續整合軟體在這八大步驟中自動化的幫助你,自動化減少了不同人員人員的的修改,減少人力上的浪費與交接上的困難。
怎麼說呢? 有點像是過去沒有自動化軟體前,由人員來控管伺服器,然而每個人員對每台伺服器的操作不同,有點像是老師傅,很懂自己操作的伺服器。當要交接時,其實很難列出具體在上面改動了什麼,並且每當要部屬專案時都還得叫老師傅起床幫忙,因為除了他沒人能亂動這台機器的環境。改成自動化、文件化(Jenkinfile)後,往後要交接的人一目了然,專案部屬的速度也因為自動化而更加快速了。
取自影片: Jenkins Full Course
用Docker可以輕鬆的安裝Jenkins
sudo chmod 777 /var/run/docker.sock
docker volume create jenkins_data
docker run -d --name myjenkins -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker jenkins/jenkins
安裝完成,執行:
docker exec -it myjenkins cat /var/jenkins_home/secrets/initialAdminPassword
產生Jenkins init Password,打開localhost:8080
輸入進下方的欄位。
選左邊那個,系統自動幫你安裝常用的plugin。要是遇到An error occurred during installation: No such plugin: cloudbees-folder
,重啟jenkins,輸入<IP>:8080/restart
重啟。
接著admin註冊帳號。
完成:
明天來實際操作Jenkins。